#ifndef MUSIC_H
#define MUSIC_H

#include <QUrl>
#include <QUuid>
#include <QMediaPlayer>
#include <QCoreApplication>

#include <QSqlQuery>
#include <QSqlError>
class Music
{
public:
    Music();
    Music(QUrl url);

    void setMusicName(const QString& musicName);
    void setMusicSinger(const QString& musicSinger);
    void setMusicAlbum(const QString& musicAlbum);
    void setMusicDuration(qint64 duration);
    void setIsLike(bool isLike);
    void setIsHistory(bool isHistory);
    void setMusicQurl(QUrl musicUrl);
    void setMusicId(const QString& musicId);

    QString getMusicName() const;
    QString getMusicSinger() const;
    QString getMusicAlbum();
    qint64 getMusicDuration() const;
    bool getIsLike() const;
    bool getIsHistory() const;
    QUrl getMusicQurl() const;
    QString getMusicId() const;

    QString getLrcFilePath() const;


    void InsertMusicDB();
private:
    void parseMediaMetaMusic();

private:
    //保证每首音乐的唯一性，为音乐添加一个id
    QString musicId;
    //音乐名称
    QString musicName;
    //音乐作者
    QString musicSinger;
    //音乐专辑
    QString musiclbumn;
    //持续时长 long long   04:30.33 ---> (4 * 60 + 30) * 1000 + 56 = 270 * 1000 + 56 = 270056毫秒
    qint64 duration;

    //是否收藏(是否喜欢)
    bool isLike;

    //是否为历史播放
    bool isHistory;

    //音乐的QUrl
    QUrl musicUrl;
};

#endif // MUSIC_H



//更新界面上歌曲的持续时间
//1,可以通过歌曲类music的成员属性duration来获取
//2,可以借助player，通过meta的元数据来获取
//3,让player直接调用自己的duration()方法来获取， 推荐，关键是

//当player的播放内容发生改变的时候，当一首歌曲播放完，下一首歌曲加载好要播放时，palyer会触发durationChanged()信号
//这个信号的参数就是这个歌曲的持续时长





